package com.asp.aspchain.core.model;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;

import java.io.Serializable;
import java.util.Date;

/**
 * @author aspire
 * @Date 2018-10-24 11:21
 */
@TableName("t_abc_mgr_contract")
public class MgrContractModel extends Model<MgrContractModel> {

	private static final long serialVersionUID = 1L;
	/**
	 * 主键自增长
	 */
	@TableId(value = "cid", type = IdType.AUTO)
	private Integer cid;
	/**
	 * 合约地址
	 */
	private String contractid;
	/**
	 * 创建时间
	 */
	private Date createtime;
	/**
	 * 更新时间
	 */
	private Date updatetime;
	/**
	 * 合约名称
	 */
	private String contracttitle;
	/**
	 * 合约描述
	 */
	private String descriptor;
	/**
	 * 初始化供应token 单位GWei 1Gwei=1，000 初始化供应token 单位GWei 1Gwei=1，000,000,000Wei
	 */
	private Long initsupply;
	/**
	 * sxt（碎星TOKEN） hzt(黑转TOKEN）
	 */
	private String tokentype;
	/**
	 * 0-18(位数)
	 */
	private Integer decimalnum;
	/**
	 * 操作人名字
	 */
	private String operator;
	/**
	 * 操作人时间
	 */
	private Date operatortime;
	/**
	 * Abi的地址
	 */
	private String abi;
	/**
	 * 部署目录
	 */
	private String deploydir;
	/**
	 * 01 部署 03 升级 05 卸载
	 */
	private String status;
	/**
	 * web3j生成的Java文件类名
	 */
	private String classname;
	/**
	 * 智能合约拥有者的私钥存储路径
	 */
	private String credentialsPath;

	public Integer getCid() {
		return cid;
	}

	public void setCid(Integer cid) {
		this.cid = cid;
	}


	/**
	 * 获取: 合约地址
	 */
	public String getContractid() {
		return contractid;
	}

	/**
	 * 设置: 合约地址
	 */
	public void setContractid(String contractid) {
		this.contractid = contractid;
	}

	/**
	 * 获取: 创建时间
	 */
	public Date getCreatetime() {
		return createtime;
	}

	/**
	 * 设置: 创建时间
	 */
	public void setCreatetime(Date createtime) {
		this.createtime = createtime;
	}

	/**
	 * 获取: 更新时间
	 */
	public Date getUpdatetime() {
		return updatetime;
	}

	/**
	 * 设置: 更新时间
	 */
	public void setUpdatetime(Date updatetime) {
		this.updatetime = updatetime;
	}

	/**
	 * 获取: 合约名称
	 */
	public String getContracttitle() {
		return contracttitle;
	}

	/**
	 * 设置: 合约名称
	 */
	public void setContracttitle(String contracttitle) {
		this.contracttitle = contracttitle;
	}

	/**
	 * 获取: 合约描述
	 */
	public String getDescriptor() {
		return descriptor;
	}

	/**
	 * 设置: 合约描述
	 */
	public void setDescriptor(String descriptor) {
		this.descriptor = descriptor;
	}

	/**
	 * 获取: 初始化供应token 单位GWei 1Gwei=1，000 初始化供应token 单位GWei 1Gwei=1，000,000,000Wei
	 */
	public Long getInitsupply() {
		return initsupply;
	}

	/**
	 * 设置: 初始化供应token 单位GWei 1Gwei=1，000 初始化供应token 单位GWei 1Gwei=1，000,000,000Wei
	 */
	public void setInitsupply(Long initsupply) {
		this.initsupply = initsupply;
	}

	/**
	 * 获取: sxt（碎星TOKEN） hzt(黑转TOKEN）
	 */
	public String getTokentype() {
		return tokentype;
	}

	/**
	 * 设置: sxt（碎星TOKEN） hzt(黑转TOKEN）
	 */
	public void setTokentype(String tokentype) {
		this.tokentype = tokentype;
	}

	/**
	 * 获取: 0-18
	 */
	public Integer getDecimalnum() {
		return decimalnum;
	}

	/**
	 * 设置: 0-18
	 */
	public void setDecimalnum(Integer decimalnum) {
		this.decimalnum = decimalnum;
	}

	/**
	 * 获取: 操作人名字
	 */
	public String getOperator() {
		return operator;
	}

	/**
	 * 设置: 操作人名字
	 */
	public void setOperator(String operator) {
		this.operator = operator;
	}

	/**
	 * 获取: 操作人时间
	 */
	public Date getOperatortime() {
		return operatortime;
	}

	/**
	 * 设置: 操作人时间
	 */
	public void setOperatortime(Date operatortime) {
		this.operatortime = operatortime;
	}

	/**
	 * 获取: Abi的地址
	 */
	public String getAbi() {
		return abi;
	}

	/**
	 * 设置: Abi的地址
	 */
	public void setAbi(String abi) {
		this.abi = abi;
	}

	/**
	 * 获取: 部署目录
	 */
	public String getDeploydir() {
		return deploydir;
	}

	/**
	 * 设置: 部署目录
	 */
	public void setDeploydir(String deploydir) {
		this.deploydir = deploydir;
	}

	/**
	 * 获取: 01 部署 03 升级 05 卸载
	 */
	public String getStatus() {
		return status;
	}

	/**
	 * 设置: 01 部署 03 升级 05 卸载
	 */
	public String getClassname() {
		return classname;
	}

	public void setClassname(String classname) {
		this.classname = classname;
	}

	public String getCredentialsPath() {
		return credentialsPath;
	}

	public void setCredentialsPath(String credentialsPath) {
		this.credentialsPath = credentialsPath;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	@Override
	protected Serializable pkVal() {
		return this.contractid;
	}

	@Override
	public String toString() {
		return ReflectionToStringBuilder.toString(this);
	}
}
